/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.Enumerator;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>POCDMT000040 Clinical Document</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getRealmCode <em>Realm Code</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getTypeId <em>Type Id</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getTemplateId <em>Template Id</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getId <em>Id</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getCode <em>Code</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getTitle <em>Title</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getEffectiveTime <em>Effective Time</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getConfidentialityCode <em>Confidentiality Code</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getLanguageCode <em>Language Code</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getSetId <em>Set Id</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getVersionNumber <em>Version Number</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getCopyTime <em>Copy Time</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getRecordTarget <em>Record Target</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getAuthor <em>Author</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getDataEnterer <em>Data Enterer</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getInformant <em>Informant</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getCustodian <em>Custodian</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getInformationRecipient <em>Information Recipient</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getLegalAuthenticator <em>Legal Authenticator</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getAuthenticator <em>Authenticator</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getParticipant <em>Participant</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getInFulfillmentOf <em>In Fulfillment Of</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getDocumentationOf <em>Documentation Of</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getRelatedDocument <em>Related Document</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getAuthorization <em>Authorization</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getComponentOf <em>Component Of</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getComponent <em>Component</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getClassCode <em>Class Code</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getMoodCode <em>Mood Code</em>}</li>
 *   <li>{@link org.hl7.v3.POCDMT000040ClinicalDocument#getNullFlavor <em>Null Flavor</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument()
 * @model extendedMetaData="name='POCD_MT000040.ClinicalDocument' kind='elementOnly'"
 * @generated
 */
public interface POCDMT000040ClinicalDocument extends EObject {
	/**
	 * Returns the value of the '<em><b>Realm Code</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.CS1}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Realm Code</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Realm Code</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_RealmCode()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='realmCode' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<CS1> getRealmCode();

	/**
	 * Returns the value of the '<em><b>Type Id</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Id</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Id</em>' containment reference.
	 * @see #setTypeId(POCDMT000040InfrastructureRootTypeId)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_TypeId()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='typeId' namespace='##targetNamespace'"
	 * @generated
	 */
	POCDMT000040InfrastructureRootTypeId getTypeId();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getTypeId <em>Type Id</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Type Id</em>' containment reference.
	 * @see #getTypeId()
	 * @generated
	 */
	void setTypeId(POCDMT000040InfrastructureRootTypeId value);

	/**
	 * Returns the value of the '<em><b>Template Id</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.II}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Template Id</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Template Id</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_TemplateId()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='templateId' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<II> getTemplateId();

	/**
	 * Returns the value of the '<em><b>Id</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Id</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Id</em>' containment reference.
	 * @see #setId(II)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Id()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='id' namespace='##targetNamespace'"
	 * @generated
	 */
	II getId();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getId <em>Id</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Id</em>' containment reference.
	 * @see #getId()
	 * @generated
	 */
	void setId(II value);

	/**
	 * Returns the value of the '<em><b>Code</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Code</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Code</em>' containment reference.
	 * @see #setCode(CE)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Code()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='code' namespace='##targetNamespace'"
	 * @generated
	 */
	CE getCode();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getCode <em>Code</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Code</em>' containment reference.
	 * @see #getCode()
	 * @generated
	 */
	void setCode(CE value);

	/**
	 * Returns the value of the '<em><b>Title</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Title</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Title</em>' containment reference.
	 * @see #setTitle(ST1)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Title()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='title' namespace='##targetNamespace'"
	 * @generated
	 */
	ST1 getTitle();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getTitle <em>Title</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Title</em>' containment reference.
	 * @see #getTitle()
	 * @generated
	 */
	void setTitle(ST1 value);

	/**
	 * Returns the value of the '<em><b>Effective Time</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Effective Time</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Effective Time</em>' containment reference.
	 * @see #setEffectiveTime(TS1)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_EffectiveTime()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='effectiveTime' namespace='##targetNamespace'"
	 * @generated
	 */
	TS1 getEffectiveTime();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getEffectiveTime <em>Effective Time</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Effective Time</em>' containment reference.
	 * @see #getEffectiveTime()
	 * @generated
	 */
	void setEffectiveTime(TS1 value);

	/**
	 * Returns the value of the '<em><b>Confidentiality Code</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Confidentiality Code</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Confidentiality Code</em>' containment reference.
	 * @see #setConfidentialityCode(CE)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_ConfidentialityCode()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='confidentialityCode' namespace='##targetNamespace'"
	 * @generated
	 */
	CE getConfidentialityCode();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getConfidentialityCode <em>Confidentiality Code</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Confidentiality Code</em>' containment reference.
	 * @see #getConfidentialityCode()
	 * @generated
	 */
	void setConfidentialityCode(CE value);

	/**
	 * Returns the value of the '<em><b>Language Code</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Language Code</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Language Code</em>' containment reference.
	 * @see #setLanguageCode(CS1)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_LanguageCode()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='languageCode' namespace='##targetNamespace'"
	 * @generated
	 */
	CS1 getLanguageCode();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getLanguageCode <em>Language Code</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Language Code</em>' containment reference.
	 * @see #getLanguageCode()
	 * @generated
	 */
	void setLanguageCode(CS1 value);

	/**
	 * Returns the value of the '<em><b>Set Id</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Set Id</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Set Id</em>' containment reference.
	 * @see #setSetId(II)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_SetId()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='setId' namespace='##targetNamespace'"
	 * @generated
	 */
	II getSetId();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getSetId <em>Set Id</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Set Id</em>' containment reference.
	 * @see #getSetId()
	 * @generated
	 */
	void setSetId(II value);

	/**
	 * Returns the value of the '<em><b>Version Number</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Version Number</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Version Number</em>' containment reference.
	 * @see #setVersionNumber(INT1)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_VersionNumber()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='versionNumber' namespace='##targetNamespace'"
	 * @generated
	 */
	INT1 getVersionNumber();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getVersionNumber <em>Version Number</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Version Number</em>' containment reference.
	 * @see #getVersionNumber()
	 * @generated
	 */
	void setVersionNumber(INT1 value);

	/**
	 * Returns the value of the '<em><b>Copy Time</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Copy Time</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Copy Time</em>' containment reference.
	 * @see #setCopyTime(TS1)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_CopyTime()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='copyTime' namespace='##targetNamespace'"
	 * @generated
	 */
	TS1 getCopyTime();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getCopyTime <em>Copy Time</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Copy Time</em>' containment reference.
	 * @see #getCopyTime()
	 * @generated
	 */
	void setCopyTime(TS1 value);

	/**
	 * Returns the value of the '<em><b>Record Target</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040RecordTarget}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Record Target</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Record Target</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_RecordTarget()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='recordTarget' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040RecordTarget> getRecordTarget();

	/**
	 * Returns the value of the '<em><b>Author</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040Author}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Author</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Author</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Author()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='author' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040Author> getAuthor();

	/**
	 * Returns the value of the '<em><b>Data Enterer</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Data Enterer</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Data Enterer</em>' containment reference.
	 * @see #setDataEnterer(POCDMT000040DataEnterer)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_DataEnterer()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='dataEnterer' namespace='##targetNamespace'"
	 * @generated
	 */
	POCDMT000040DataEnterer getDataEnterer();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getDataEnterer <em>Data Enterer</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Data Enterer</em>' containment reference.
	 * @see #getDataEnterer()
	 * @generated
	 */
	void setDataEnterer(POCDMT000040DataEnterer value);

	/**
	 * Returns the value of the '<em><b>Informant</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040Informant12}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Informant</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Informant</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Informant()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='informant' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040Informant12> getInformant();

	/**
	 * Returns the value of the '<em><b>Custodian</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Custodian</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Custodian</em>' containment reference.
	 * @see #setCustodian(POCDMT000040Custodian)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Custodian()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='custodian' namespace='##targetNamespace'"
	 * @generated
	 */
	POCDMT000040Custodian getCustodian();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getCustodian <em>Custodian</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Custodian</em>' containment reference.
	 * @see #getCustodian()
	 * @generated
	 */
	void setCustodian(POCDMT000040Custodian value);

	/**
	 * Returns the value of the '<em><b>Information Recipient</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040InformationRecipient}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Information Recipient</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Information Recipient</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_InformationRecipient()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='informationRecipient' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040InformationRecipient> getInformationRecipient();

	/**
	 * Returns the value of the '<em><b>Legal Authenticator</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Legal Authenticator</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Legal Authenticator</em>' containment reference.
	 * @see #setLegalAuthenticator(POCDMT000040LegalAuthenticator)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_LegalAuthenticator()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='legalAuthenticator' namespace='##targetNamespace'"
	 * @generated
	 */
	POCDMT000040LegalAuthenticator getLegalAuthenticator();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getLegalAuthenticator <em>Legal Authenticator</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Legal Authenticator</em>' containment reference.
	 * @see #getLegalAuthenticator()
	 * @generated
	 */
	void setLegalAuthenticator(POCDMT000040LegalAuthenticator value);

	/**
	 * Returns the value of the '<em><b>Authenticator</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040Authenticator}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Authenticator</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Authenticator</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Authenticator()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='authenticator' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040Authenticator> getAuthenticator();

	/**
	 * Returns the value of the '<em><b>Participant</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040Participant1}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Participant</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Participant</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Participant()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='participant' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040Participant1> getParticipant();

	/**
	 * Returns the value of the '<em><b>In Fulfillment Of</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040InFulfillmentOf}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>In Fulfillment Of</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>In Fulfillment Of</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_InFulfillmentOf()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='inFulfillmentOf' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040InFulfillmentOf> getInFulfillmentOf();

	/**
	 * Returns the value of the '<em><b>Documentation Of</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040DocumentationOf}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Documentation Of</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Documentation Of</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_DocumentationOf()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='documentationOf' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040DocumentationOf> getDocumentationOf();

	/**
	 * Returns the value of the '<em><b>Related Document</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040RelatedDocument}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Related Document</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Related Document</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_RelatedDocument()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='relatedDocument' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040RelatedDocument> getRelatedDocument();

	/**
	 * Returns the value of the '<em><b>Authorization</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.POCDMT000040Authorization}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Authorization</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Authorization</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Authorization()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='authorization' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<POCDMT000040Authorization> getAuthorization();

	/**
	 * Returns the value of the '<em><b>Component Of</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Component Of</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Component Of</em>' containment reference.
	 * @see #setComponentOf(POCDMT000040Component1)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_ComponentOf()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='componentOf' namespace='##targetNamespace'"
	 * @generated
	 */
	POCDMT000040Component1 getComponentOf();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getComponentOf <em>Component Of</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Component Of</em>' containment reference.
	 * @see #getComponentOf()
	 * @generated
	 */
	void setComponentOf(POCDMT000040Component1 value);

	/**
	 * Returns the value of the '<em><b>Component</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Component</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Component</em>' containment reference.
	 * @see #setComponent(POCDMT000040Component2)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_Component()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='component' namespace='##targetNamespace'"
	 * @generated
	 */
	POCDMT000040Component2 getComponent();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getComponent <em>Component</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Component</em>' containment reference.
	 * @see #getComponent()
	 * @generated
	 */
	void setComponent(POCDMT000040Component2 value);

	/**
	 * Returns the value of the '<em><b>Class Code</b></em>' attribute.
	 * The default value is <code>"DOCCLIN"</code>.
	 * The literals are from the enumeration {@link org.hl7.v3.ActClassClinicalDocument}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Class Code</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Class Code</em>' attribute.
	 * @see org.hl7.v3.ActClassClinicalDocument
	 * @see #isSetClassCode()
	 * @see #unsetClassCode()
	 * @see #setClassCode(ActClassClinicalDocument)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_ClassCode()
	 * @model default="DOCCLIN" unsettable="true"
	 *        extendedMetaData="kind='attribute' name='classCode'"
	 * @generated
	 */
	ActClassClinicalDocument getClassCode();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getClassCode <em>Class Code</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Class Code</em>' attribute.
	 * @see org.hl7.v3.ActClassClinicalDocument
	 * @see #isSetClassCode()
	 * @see #unsetClassCode()
	 * @see #getClassCode()
	 * @generated
	 */
	void setClassCode(ActClassClinicalDocument value);

	/**
	 * Unsets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getClassCode <em>Class Code</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetClassCode()
	 * @see #getClassCode()
	 * @see #setClassCode(ActClassClinicalDocument)
	 * @generated
	 */
	void unsetClassCode();

	/**
	 * Returns whether the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getClassCode <em>Class Code</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Class Code</em>' attribute is set.
	 * @see #unsetClassCode()
	 * @see #getClassCode()
	 * @see #setClassCode(ActClassClinicalDocument)
	 * @generated
	 */
	boolean isSetClassCode();

	/**
	 * Returns the value of the '<em><b>Mood Code</b></em>' attribute.
	 * The default value is <code>"EVN"</code>.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Mood Code</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Mood Code</em>' attribute.
	 * @see #isSetMoodCode()
	 * @see #unsetMoodCode()
	 * @see #setMoodCode(Enumerator)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_MoodCode()
	 * @model default="EVN" unsettable="true" dataType="org.hl7.v3.ActMood"
	 *        extendedMetaData="kind='attribute' name='moodCode'"
	 * @generated
	 */
	Enumerator getMoodCode();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getMoodCode <em>Mood Code</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Mood Code</em>' attribute.
	 * @see #isSetMoodCode()
	 * @see #unsetMoodCode()
	 * @see #getMoodCode()
	 * @generated
	 */
	void setMoodCode(Enumerator value);

	/**
	 * Unsets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getMoodCode <em>Mood Code</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetMoodCode()
	 * @see #getMoodCode()
	 * @see #setMoodCode(Enumerator)
	 * @generated
	 */
	void unsetMoodCode();

	/**
	 * Returns whether the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getMoodCode <em>Mood Code</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Mood Code</em>' attribute is set.
	 * @see #unsetMoodCode()
	 * @see #getMoodCode()
	 * @see #setMoodCode(Enumerator)
	 * @generated
	 */
	boolean isSetMoodCode();

	/**
	 * Returns the value of the '<em><b>Null Flavor</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Null Flavor</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Null Flavor</em>' attribute.
	 * @see #setNullFlavor(Enumerator)
	 * @see org.hl7.v3.V3Package#getPOCDMT000040ClinicalDocument_NullFlavor()
	 * @model dataType="org.hl7.v3.NullFlavor"
	 *        extendedMetaData="kind='attribute' name='nullFlavor'"
	 * @generated
	 */
	Enumerator getNullFlavor();

	/**
	 * Sets the value of the '{@link org.hl7.v3.POCDMT000040ClinicalDocument#getNullFlavor <em>Null Flavor</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Null Flavor</em>' attribute.
	 * @see #getNullFlavor()
	 * @generated
	 */
	void setNullFlavor(Enumerator value);

} // POCDMT000040ClinicalDocument
